using System;

namespace Slippor.Common.PluginFramework
{
    public interface IPluginService
    {
        IApplication Application { get; set; }

        void AddPlugin(PluginInfo pInfo);
        void RemovePlugin(String pluginName);
        void ReloadPlugin(PluginInfo pInfo);

        String[] GetAllPluginNames();
        Boolean Contains(String pluginName);
        Boolean LoadPlugin(String pluginName);
        Boolean UnLoadPlugin(String pluginName);
        IPlugin GetPluginInstance(String pluginName);
        void LoadAllPlugin();

        void SetConfig(PluginInfo pInfo);
    }
}